///////////////////////////////////////////////////////////////////////////////
// Project: Hoyo Client Game
//
// hy_battle_skill_logic.h
// Created: 2013-7-15
// Author: Like Cheng
///////////////////////////////////////////////////////////////////////////////
#pragma once
#include "hy_includes.h"
//#include "hy_battle_system/hy_buff_data.h"
#include "hy_battle_system/hy_battle_unit.h"

class hy_battle_unit;
class hy_battle_skill_logic : public hy_object
{
public:
	hy_battle_skill_logic();
	virtual ~hy_battle_skill_logic();

	static hy_battle_skill_logic*		instance();
	static void					purge_instance();
public:

	//hy_buff_data* get_battle_unit_buff_data( hy_battle_unit* tag, hy_buff_data_enum bde );
	//void						battle_buff_unit_pre_proc( hy_battle_unit* bu, Json::Value& jv );
	//void						battle_buff_unit_proc( hy_battle_unit* bu, hy_buff_data* bffd, Json::Value& jv );
	//void						battle_buff_unit_after_proc( hy_battle_unit* bu, Json::Value& jv );

	bool tag_dis_hp( hy_battle_unit* own, hy_battle_unit* tag, Json::Value &cv, Json::Value& get_cv );
	bool tag_add_hp( hy_battle_unit* own, hy_battle_unit* tag, Json::Value &cv, Json::Value& get_cv );
	bool own_add_hp( hy_battle_unit* own, Json::Value &cv, Json::Value &get_cv );
	bool tag_add_buff( hy_battle_unit* own, hy_battle_unit* tag, Json::Value &cv, Json::Value& get_cv );
	bool tag_dis_buff( hy_battle_unit* own, hy_battle_unit* tag, Json::Value &cv, Json::Value& get_cv );

	void battle_unit_dead_proc( hy_battle_unit* tag, Json::Value& get_cv, battle_unit_state_enum bs );
};